"Minden neuron rendelkezik egy úgynevezett receptív mezővel, amely a beidegződések azon csoportja, amelyek aktiválására érzékeny."
Ez a modul alapvető bevezetés a neurális hálózatok (NN) témakörébe. A lecke célja, hogy bemutassa az idegi hálózatokat, és ne csak azt mutassa meg, hogy mire képesek és hogyan használják őket, hanem betekintést nyújtson a belső működésükbe is.
A tanulók képesek lesznek:
| Idő | Tartalom | Tananyag |
|---|---|---|
| 50 perc | Elmélet - 1. rész - Alapok | Diák |
| 30 perc | Elmélet - 2. rész - Receptív mezők | Diák |
| 20 perc | Gyakorlat - szimulátor a kézi és automatikus változatban | Szimulátor |
| 25 perc | Elmélet - 3. rész - gyakorlati minipélda | Diák |
| 10 perc | Gyakorlat - szimulátor | Szimulátor |
| 15 perc | Gyakorlat - gyakorlati feladatok | Fájlok |
Ez a rész elmagyarázza a neurális hálózatok alapfogalmait és felépítését, és bemutatja működésüket a karakterfelismerés példáján keresztül egy egyszerű feed-forward hálózat segítségével.
A neurális hálózatok valójában minden gondolkodási folyamat feltételezett kiindulópontját jelentik, a mesterséges neurális hálózatok pedig egy nagyszabású kísérlet arra, hogy ezt a folyamatot elvben, de nem részletesen reprodukálják. A neurális hálózatok alapvetően másképp működnek, mint a hagyományos számítógépek a szokásos Neumann-architektúrával (aritmetikai logikai egység, vezérlőegység, memória, I/O egység). A "Feed-Forward-Network" kifejezés bevezetése.
Miért jelent kihívást a számjegy- és karakterfelismerés? Mitől olyan nehéz a hagyományos programozás?
Hogyan kerülnek a bemeneti adatok, azaz esetünkben a grafikusan megjelenített számjegyek és számok a hálózatba? A képpontok fényerejét az első réteg (= bemeneti réteg) neuronjainak aktivációjaként értelmezzük.
A feed-forward architektúrában az első réteg a bemeneti réteg, az utolsó a kimeneti réteg, a közte lévő rétegeket pedig rejtett rétegeknek nevezzük.
A diák az adatáramlást mutatják a hálózaton keresztül. Az aktiválások átkerülnek a kapcsolatokon, és a következő réteg aktivációivá válnak.
A karakterek felismerése lépésről lépésre úgy képzelhető el, hogy először a karakter egyszerűbb, alaposabb egységeit ismerjük fel, majd a nagyobb, összefüggőbb egységeket. Ezek az egységek minden esetben színnel vannak kiemelve. A neurális hálózatok működésének egyik magyarázata, hogy egy sikeresen betanított hálózatban munkamegosztás van a rétegek között, így a feljebb lévő rétegek (bal oldal) az alapvető egységekre, a lejjebb lévő rétegek (jobb oldal) pedig inkább a nagyobb egységekre reagálnak.
Az aktivációk és a súlyok közötti kapcsolatot itt magyarázzuk el, és bevezetjük a receptív mező fogalmát. Minden neuron rendelkezik egy úgynevezett receptív mezővel, amely a neuronok azon csoportja, amelyek aktiválására érzékeny. Ez fontos fogalom a neurális hálózatok működésének megértéséhez.
Annak érdekében, hogy a neuronok értékei ne növekedjenek a végtelenségig a pozitív vagy negatív irányba (a háló egy kis része elegendő lenne ahhoz, hogy a teljes eredményt használhatatlanná tegye), mindig korlátozó függvényt használunk. Ez az aktiválási függvény elemi összetevőjévé válik.
Annak magyarázata, hogy a torzítás milyen szerepet játszik a működésben, és a teljes aktiválási képlet feltüntetése, amely a kényszerfüggvényből, az aktiválásokból, a súlyokból és az előingerlésből áll.
Három kérdés segítségével összefoglaljuk a neurális hálózatok néhány alapvető tulajdonságát.
A feed-forward hálózati architektúrát azért mutattuk be, mert ez egy nagyon egyszerű és gyakran használt architektúra. A grafikon csak azt hivatott jelezni, hogy számos más architektúrát is használnak és tesztelnek.
Ez a rész elmélyíti az 1. részben már bemutatott receptív mező fogalmát egy 2x2 pixeles kamerával történő tárgyfelismerés interaktív példáján keresztül. A lecke ezen része lehetővé teszi a neurális hálózat működésének interaktív megértését a szimulátor segítségével.
Egy egyszerű neurális hálózat segítségével egy 2x2 pixeles érzékelővel felszerelt kamera négy különböző mintát képes felismerni. Mint korábban a karakterfelismerés esetében, a probléma nagyobb kihívást jelent, mint amilyennek elsőre hangzik. Az azonos kategóriájú mintáknak nem biztos, hogy vannak közös pixeleik. Mint korábban, itt is a pixelek fényereje lesz a bemeneti réteg neuronjainak aktiválásának forrása.
Ezeken a diákon ismét részletesen bemutatjuk, hogyan működnek az idegsejtek: A bemenetek súlyozott összegének képzése és az értékek korlátozása. A szigmoid függvény részletei egy bővített tartalmat képeznek a haladóbb tanulók számára.
A megkezdett réteg befejeződik, egy további, ugyanolyan típusú réteg kerül hozzáadásra, végül pedig egy másik réteg alternatív aktiválási függvénnyel. Az aktiválásokhoz és súlyokhoz csak 0, 1, -1 értékeket használunk egymás után. Ez drasztikus korlátozás, és csak azért működik, mert ez egy nagyon egyszerű felhasználási lehetőség. A számítást azonban sokkal egyszerűbbé teszi. Lehetővé válik számunkra, hogy az egyszerű neurális hálózaton keresztül kövessük a számítási folyamatot, vagy akár magunk is elvégezzük azt. A gyakorlatban nem lenne jó ötlet, ha csak 0, 1, -1-et használnánk. Ez csak erre az egyszerű példára működik.
Ennek az aktiválási függvénynek a részletei ismét bővített tartalomként tekinthetők meg. Mindkettő a függvények fogalmának és a függvények grafikus ábrázolásának alapos ismeretét igényli. A példánkban szereplő ReLU függvény legfontosabb tulajdonsága, hogy nem ad át negatív értékeket. Ezt a tulajdonságot használjuk fel az utolsó lépésben az eredmény sikeres kiszámításához.
A két aktiválási függvény alkalmazását jelentősen leegyszerűsíti az a trükk, hogy csak a 0, 1, -1 értékeket használjuk. A főként használt aktiválási függvény (Sigmoid) legfontosabb tulajdonsága, hogy az 1-nél nagyobb értékeket 1-re, a -1-nél kisebb értékeket pedig -1-re redukálja. Az alternatív aktiválási függvények (ReLU és szivárgó ReLU) legfontosabb tulajdonsága, hogy a negatív értékek 0-ra (vagy nullához közeli értékre) redukálódnak.
Ez a dia a kész rendszert mutatja. A függőleges mintát hozzáadtuk, és helyesen felismerhető. Minden egyes neuronhoz fel van tüntetve a receptív mező. Ez minden neuron esetében azoknak a bemeneti neuronoknak a halmaza, amelyektől közvetlenül vagy közvetve jeleket tud fogadni. A receptív mezők balról jobbra haladva az 1-es mérettől a 4-es méretig nőnek. Minden esetben az is lényeges, hogy a neuron a receptív mezőjében pozitív (fehér mező) vagy negatív (fekete mező) aktivációra reagál.
A szimulátor a hálózat feldolgozási lépéseinek szimulálására használható. A szimulátor kézi és automatikus változatban is elérhető. A manuális változatban az összes aktivációt a felhasználó határozza meg és állítja be a bemeneti adatok (=aktivációk 0,1,-1) és a kapcsolatok (0,1,-1) alapján. A szimulátor automatikus változata a bemeneti adatokból kiszámítja az összes szükséges aktivációt és kimenetet, és természetesen sokkal kényelmesebb a kezelése. A kézi szimulátorral sokkal nagyobb kihívást jelent a kezelő számára, de a tanulási hatás is sokkal nagyobb. A tehetséges vagy haladó tanulóknak először a kézi szimulátorral kell megismerkedniük.
Ez a rész egy interaktív gyakorlati példát mutat be egy mindössze 5 neuronból álló neurális hálózatra. A lecke e részének különlegessége, hogy egy minimális, de minden fázisban önálló kis projektről van szó. Nem használunk külső könyvtárakat vagy egyéb eszközöket. A képzési adatok, a számítási folyamat, a tréning kezelhető, egyértelműen dokumentált és azonnal érthető a Python forráskódban. A projekt nagyon jól szolgálja azt a célt, hogy demisztifikálja a mesterséges intelligencia területét. A projekt további projektek alapjául is szolgálhat, például lehet más adatbázist használni, vagy a hálózatot strukturálisan is bővíteni: további be- és kimeneti lehetőségek, további rétegek... A szerkezeti változtatás azonban a képzési folyamat megváltoztatását is megköveteli.
Bevezetés, grafikus ábrázolás és a neurális hálózat szerkezetének magyarázata.
A testsúly, a testmagasság és a nemek közötti kapcsolat grafikus ábrázolása. Csak az említett változók közötti kapcsolat szemléltetésére szolgál. Ez azonban nem a képzési adat. A hálózatot csak 4 adatmintával képezzük (lásd a Python programot).
A két csoport átfedése miatt nem mindig várhatóak egyértelmű eredmények. Magyarázat arra, hogyan kell értelmezni a kimeneti réteg aktiválásának eredményét.
Itt ismertetjük a hálózaton keresztüli pontos adatáramlást és a számítási folyamatot.
Itt kerül kifejtésre a kényszerfüggvény szükségessége.
A képzés magasabb szintű tartalmat képvisel. A haladók számára azonban az iii_training.pptx jó áttekintést nyújt a példa befejezéséhez. A Python forráskódja szintén információt szolgáltat a képzés részleteiről.
A szimulátor lehetővé teszi minden diák számára, hogy interaktívan mintavételezzen értékeket és leolvassa az eredményt.
A bemenetek 2 csúszkán keresztül történnek. A neuronok aktivációja numerikusan kerül kimenetre a neuronon, és ezen felül szürke skálákkal vizualizálható. A fekete itt a 0 aktivációt, a fehér az 1 aktivációt jelöli. A súlyozott kapcsolat erősségét a vonalszélességgel szimbolizáljuk. A pozitív kapcsolatok fekete színűek, a negatív kapcsolatok piros színűek.
A résztvevők a megszerzett ismereteket most már felhasználhatják saját példájuk kiszámításához. A hálózat minimális, egyszerű felépítésének köszönhetően a kézi számítás könnyen elvégezhető.
3 értékpár van megadva, amelyekre a résztvevők kiszámíthatják az eredményeket. Az alsó sorban saját értékek használhatók.
Az alapjául szolgáló Python program két változatban áll rendelkezésre, amelyekben különböző aktiválási függvényeket használnak.